using System;
using System.Collections.Generic;
using System.Text;

namespace Enyo
{
	public abstract class DataReflector<T> : DataReflector, IDataProcessor<T>
	{
		private Enyo.DataInformation<T> m_Information;

		public Enyo.DataInformation<T> Information
		{
			get { return m_Information; }
			set { m_Information = value; }
		}
	
		public virtual Enyo.Reflection.Type<T> DataType { get { return new Enyo.Reflection.Type<T>(); } }
		public abstract T Process(T value);

		public override object Process(object value)
		{
			return this.Process((T)value);
		}

	}

}
